.. _应用案例: ************************************ 应用案例 ************************************ æœ¬ç« å°†ä»‹ç»DS-PAWçš„å„ç§åº”用实例,具体包括:如何计算ç£çŸ©ã€å¦‚何计算åé“ç£ææ–™ç‰ï¼›ç”¨æˆ·é€šè¿‡ä»¥ä¸‹åº”用教程,å¯ä»¥æ›´æ·±å…¥äº†è§£DS-PAW软件的使用。 :math:`O` 原åçš„ç£çŸ©è®¡ç®— ========================================================================== 本节将以å•个氧原å体系为例æ¥ä»‹ç»ç£æ€§ä½“系的计算。 :math:`O` 原å自洽计算之文件准备 ------------------------------------------------------ 由于本次计算的是å•个氧原åçš„ç£çŸ©ï¼Œå› æ¤å¹¶ä¸éœ€è¦è¿›è¡Œç»“æž„å¼›è±«è®¡ç®—ï¼Œç›´æŽ¥ä»Žè‡ªæ´½è®¡ç®—å¼€å§‹ï¼Œå‡†å¤‡å‚æ•°æ–‡ä»¶ :guilabel:`scf.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 如下: .. code-block:: python task = scf sys.symmetry = false sys.structure = structure.as sys.spin = collinear cal.smearing = 1 cal.sigma = 0.01 cal.kpoints = [1, 1, 1] 本次计算的输入文件ä¸ä»¥ä¸‹å‡ ä¸ªå‚æ•°éœ€é‡ç‚¹å…³æ³¨ï¼š - ``sys.symmetry`` :DS-PAWå¯ä»¥é€šè¿‡å¯¹ç§°æ€§æ¥å‡å°‘程åºçš„计算é‡ï¼Œä½†åŒæ—¶å¯èƒ½ä¼šå¸¦æ¥èƒ½é‡ç®€å¹¶ç‰ä¸åˆç†çš„结果,本次计算关é—对称性; - ``sys.spin`` ï¼šæŒ‡å®šä½“ç³»çš„ç£æ€§ä¸º **collinear** å³ **共线自旋** ï¼› - ``cal.kpoints`` :对于没有周期性的维度, K点å¯è®¾ç½®ä¸º1ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code:: python Total number of atoms 1 Lattice 7.50000000 0.00000000 0.00000000 0.00000000 8.00000000 0.00000000 0.00000000 0.00000000 8.90000000 Cartesian O 0.00000000 0.00000000 0.00000000 结构文件使用笛å¡å°”åæ ‡ï¼Œå› æ¤ç¬¬ä¸ƒè¡Œä¸åæ ‡ç±»åž‹ä¸º ``Cartesian`` ;为了使结构也尽é‡åœ°å‡å°‘å¯¹ç§°æ€§ï¼Œå°†æ™¶æ ¼ä¿®æ”¹ä¸º **[7.5,8,8.9]** æ ¼å。 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`scf.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°å®‰è£…äº†DS-PAW的环境上,è¿è¡Œ :guilabel:`DS-PAW scf.in` 命令。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` ç‰è¾“出文件。 使用HDFView软件打开 :guilabel:`scf.h5` 文件,Eigenvalue 部分数æ®å¦‚下: .. figure:: ../imgs/2-1.png :width: 800px 在 :guilabel:`scf.h5` çš„ **Eigenvalue** - **Spin** - **Occupation** 部分å¯å¾—å‘上自旋的电åå æ®æ•°ä¸º4,å‘下自旋的电åå æ®æ•°ä¸º2,从 **MagInfo** 部分å¯å¾—总ç£çŸ©ä¸º **2μB** ï¼ŒåŒæ—¶åœ¨ :guilabel:`DS-PAW.log` ä¸ä¹Ÿå¯è¯»å–体系的总ç£çŸ©ä¸º **2μB** 。 | | :math:`NiO` 体系的åé“ç£è®¡ç®— ========================================================================== 本节将以NiO体系为例介ç»å¦‚何设置计算åé“ç£è®¡ç®—。 :math:`NiO` 体系自洽计算 ------------------------------------------------------ 本次案例çœç•¥äº†ç»“构弛豫过程,用户é‡çŽ°æ¤æ¡ˆä¾‹æ—¶éœ€å…ˆè¿›è¡Œç»“æž„å¼›è±«è®¡ç®—ã€‚å‡†å¤‡å‚æ•°æ–‡ä»¶ :guilabel:`scf.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 如下: .. code-block:: python task = scf sys.structure = structure.as sys.spin = collinear cal.smearing = 4 cal.kpoints = [8, 8, 8] cal.cutoff = 650 本次计算的输入文件ä¸ä»¥ä¸‹å‡ ä¸ªå‚æ•°éœ€è¦é‡ç‚¹å…³æ³¨ï¼š - ``cal.smearing`` :本次计算ä¸é‡‡ç”¨ **å››é¢ä½“åŠ å¸ƒæ´›èµ«** 的方法,当使用该方法时 ``sigma`` 将强制被设置为 **0** ï¼› - ``sys.spin`` ï¼šæŒ‡å®šä½“ç³»ç£æ€§ï¼Œ **NiO** 为åé“ç£ææ–™å› æ¤è®¾ç½®ç£æ€§ä¸º ``collinear`` ï¼› - ``cal.cutoff`` ï¼šè®¾ç½®å¹³é¢æ³¢çš„æˆªæ–为 **650 eV** ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: python Total number of atoms 4 Lattice 4.16840000 2.08420000 2.08420000 2.08420000 4.16840000 2.08420000 2.08420000 2.08420000 4.16840000 Cartesian Mag Ni 1.04210000 1.04210000 1.04210000 2.0 Ni 5.21050000 5.21050000 5.21050000 -2.0 O 3.12630000 3.12630000 3.12630000 0 O 7.29470000 7.29470000 7.29470000 0 设置ç£çŸ©éœ€åœ¨ç»“构文件的第七行的 ``Cartesian`` åŽåŠ ä¸Š **Mag** æ ‡ç¾ï¼Œåœ¨åŽŸååæ ‡æ‰€åœ¨è¡Œè®¾ç½®æ¯ä¸ªåŽŸåçš„ç£çŸ©ï¼Œç”±äºŽéœ€è¦ä½“现åé“ç£ï¼ˆæ•´ä¸ªä½“ç³»ä¸æ˜¾ç¤ºç£çŸ©ï¼Œå•ä¸ªåŽŸåæœ‰ç£çŸ©ï¼‰ï¼Œæ¤ä¾‹é€‰å–了4个原å的晶胞,设置4个Ni原åçš„ç£çŸ©åˆ†åˆ«ä¸º **2ã€-2ã€0ã€0** 。 .. note:: 1. **Mag** æ ‡ç¾å¯è®¾ç½®ä½“ç³»ä¸å„原åçš„ç£çŸ©ã€‚çº¿æ€§è‡ªæ—‹è®¡ç®—ä¸æ·»åŠ æ¯ä¸ªåŽŸå的总ç£çŸ©å³å¯ï¼›è‡ªæ—‹è½¨é“耦åˆè®¡ç®—ä¸éœ€æ·»åŠ x, y, zæ–¹å‘上的ç£çŸ©ï¼Œæ·»åŠ æ ‡ç¾ä¸º **Mag_x** , **Mag_y**, **Mag_z**,在对应的原ååæ ‡åŽæ·»åŠ ä¸‰ä¸ªæ–¹å‘上ç£çŸ©å³å¯ã€‚以NiO体系为例,若进行自旋轨é“耦åˆè®¡ç®—,ç£çŸ©è®¾ç½®åº”如下: .. code-block:: python Total number of atoms 4 Lattice 4.16840000 2.08420000 2.08420000 2.08420000 4.16840000 2.08420000 2.08420000 2.08420000 4.16840000 Cartesian Mag_x Mag_y Mag_z Ni 1.04210000 1.04210000 1.04210000 0.0 0.0 2.0 Ni 5.21050000 5.21050000 5.21050000 0.0 0.0 -2.0 O 3.12630000 3.12630000 3.12630000 0.0 0.0 0.0 O 7.29470000 7.29470000 7.29470000 0.0 0.0 0.0 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`scf.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°å®‰è£…äº†DS-PAW的环境上,è¿è¡Œ :guilabel:`DS-PAW scf.in` 命令。 analysisè‡ªæ´½è®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` ç‰è¾“出文件。从 :guilabel:`DS-PAW.log` ä¸å¯è¯»å–自洽完æˆä¹‹åŽæ€»ç£çŸ©ä¸º **1e-8μB** ï¼Œå‡ ä¹Žä¸º0。 :math:`NiO` 体系æ€å¯†åº¦è®¡ç®— ------------------------------------------------------ 之åŽå‡†å¤‡è¿›è¡Œæ€å¯†åº¦è®¡ç®—ï¼Œå‡†å¤‡å‚æ•°æ–‡ä»¶ :guilabel:`pdos.in` 结构文件 :guilabel:`structure.as` ã€è‡ªæ´½è®¡ç®—所得的电è·å¯†åº¦æ–‡ä»¶ :guilabel:`rho.bin` ï¼Œæ¤æ—¶ :guilabel:`pdos.in` 如下: .. code-block:: python task = dos sys.structure = structure.as sys.spin = collinear cal.iniCharge = ./rho.bin cal.smearing = 4 cal.kpoints = [16, 16, 16] cal.cutoff = 650 dos.range = [-20, 20] dos.resolution = 0.05 dos.project = true :guilabel:`pdos.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š - ``dos.range`` :表示能é‡è®¡ç®—区间为 -20 到 20 eVï¼› - ``dos.resolution`` :表示在能é‡è®¡ç®—区间内打点的间隔精度; - ``dos.project`` :控制æ€å¯†åº¦çš„æŠ•影计算,本次计算打开了æ€å¯†åº¦çš„æŠ•影。 run程åºè¿è¡Œ ------------------------------------------------------ 将新建的 :guilabel:`pdos.in` æ–‡ä»¶ä¸Šä¼ è‡³æœåŠ¡å™¨ï¼Œè¿è¡Œ :guilabel:`DS-PAW pdos.in` 命令。 dosæ€å¯†åº¦è®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`dos.h5` ç‰è¾“出文件。使用 :doc:`/tools` ä¸ç›¸åº”脚本对 :guilabel:`dos.h5` 文件进行数æ®å¤„ç†ï¼Œåˆ†æžç¬¬2个Ni原åçš„t2gå’Œeg轨é“,å¯å¾—如下所示æ€å¯†åº¦åˆ†å¸ƒå›¾ï¼Œæ¤ä¸ºä¸åŠ U值的情况: .. figure:: ../imgs/phase3/NiO-dos.png :width: 500px :align: center .. centered:: :math:`NiO` æ€å¯†åº¦ :math:`NiO` 体系DFT+Uçš„æ€å¯†åº¦è®¡ç®— ------------------------------------------------------ NiO体系DFT+Uçš„æ€å¯†åº¦è®¡ç®—的计算æµç¨‹ä¸Žä¸ŠèŠ‚NiO体系的æ€å¯†åº¦è®¡ç®—æµç¨‹ä¸€è‡´ï¼Œä¸åŒä¹‹å¤„在于需在自洽和æ€å¯†åº¦çš„计算ä¸éƒ½åŠ å…¥DFT+Uç›¸å…³å‚æ•°ï¼Œéœ€å¢žåŠ çš„è¾“å…¥å‚æ•°å¦‚下所示: .. code-block:: python #correction related corr.dftu=true corr.dftuForm = 1 corr.dftuElements =[Ni] corr.dftuOrbital=[d] corr.dftuU = [8] corr.dftuJ = [0.95] 本次计算的输入文件ä¸ä»¥ä¸‹å‡ ä¸ªå‚æ•°éœ€è¦é‡ç‚¹å…³æ³¨ï¼š - ``corr.dftu`` è®¾ç½®æ˜¯å¦æ‰“å¼€DFT+U的开关,本例åä¸è®¾ç½®ä¸ºtrueï¼› - ``corr.dftuForm`` 设置DFT+U方法,1对应DFT+U+J 方法 (Liechtenstein’s formulation); - ``corr.dftuElements`` 设置需è¦åŠ Uçš„å…ƒç´ ï¼Œæœ¬ä¾‹ä¸ä¸ºNiï¼› - ``corr.dftuOrbital`` 设置需è¦åŠ U的轨é“,本例ä¸è®¾ç½®ä¸ºd轨é“ï¼› - ``corr.dftuU`` 设置具体的U值,本例ä¸è®¾ç½®ä¸º8ï¼› - ``corr.dftuJ`` 设置具体的J值,本例ä¸è®¾ç½®ä¸º0.95ï¼› 自洽和æ€å¯†åº¦è®¡ç®—完æˆä¹‹åŽï¼Œåˆ†æžç¬¬2个Ni原å在进行DFT+U计算之åŽt2gå’Œegè½¨é“æ€å¯†åº¦åˆ†å¸ƒï¼Œå¾—到的分布图如下所示: .. figure:: ../imgs/phase3/NiO-U-dos.png :width: 500px :align: center .. centered:: :math:`NiO` æ€å¯†åº¦( **DFT+U** ) .. note:: 1. **DFT+Uå¯ä»¥è®¾ç½®å¤šä¸ªå…ƒç´ 对应轨é“çš„U值,例如设置Niçš„d轨é“åŠ U值为8,J值为0.95ï¼›Oçš„p轨é“åŠ U值为1,J值为0ï¼Œæ¤æ—¶è®¾ç½®å¦‚下:corr.dftuElements =[Ni,O] corr.dftuOrbital=[d,p] corr.dftuU = [8,1] corr.dftuJ = [0.95,0]。** 2. **DFT+U默认使用方法为 DFT+U(Dudarev’s formulation)ï¼Œå¯¹åº”å‚æ•° corr.dftuForm = 2,使用该方法时 J 值强制为0ï¼Œå› æ¤åœ¨è¯¥æƒ…况下设置Jå€¼æ— æ•ˆã€‚** | | :math:`AuAl` slab模型功函数计算 ========================================================================== 本节将以 :math:`AuAl` slab模型为例介ç»å¦‚何进行功函数计算。 :math:`AuAl` slab模型自洽计算之文件准备 ------------------------------------------------------ 本次案例çœç•¥äº†ç»“构弛豫过程,用户é‡çŽ°æ¤æ¡ˆä¾‹æ—¶éœ€å…ˆè¿›è¡Œç»“æž„å¼›è±«è®¡ç®—ã€‚å‡†å¤‡å‚æ•°æ–‡ä»¶ :guilabel:`scf.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 如下: .. code-block:: python task = scf sys.structure = structure.as sys.spin = collinear cal.smearing = 4 cal.kpoints = [8, 8, 1] cal.cutoff = 530 io.potential=true potential.type = hartree #correction related corr.dipol = true corr.dipolDirection = c 本次计算的输入文件ä¸ä»¥ä¸‹å‡ ä¸ªå‚æ•°éœ€è¦é‡ç‚¹å…³æ³¨ï¼š - ``io.potential`` 为自洽ä¸è®¡ç®—势函数的开关; - ``potential.type`` 控制势函数ä¿å˜çš„类型,计算功函数的时候需è¦é™ç”µåŠ¿çš„æ•°æ®ï¼Œè¿™é‡Œæˆ‘们设置potential.type = hartreeï¼› - ``corr.dipol`` ä¸ºå¶æžä¿®æ£çš„开关;本例ä¸è®¾ç½®ä¸ºtrueï¼› - ``corr.dipolDirection`` 本例ä¸è®¾ç½®å¶æžä¿®æ£çš„æ–¹å‘ä¸ºæ™¶æ ¼çŸ¢é‡çš„cæ–¹å‘。 :guilabel:`structure.as` 文件å‚考如下: .. code-block:: python Total number of atoms 8 Lattice 4.06384898 0.00000000 0.00000000 0.00000000 4.06384898 0.00000000 0.00000000 0.00000000 20.00000000 Cartesian Au 1.01596223 1.01596223 0.00000000 Au 3.04788672 3.04788672 0.00000000 Au 3.04788672 1.01596224 2.03914999 Au 1.01596224 3.04788672 2.03914999 Al 1.01596224 1.01596224 4.07109999 Al 3.04788673 3.04788673 4.07109999 Al 3.04788673 1.01596224 6.09585000 Al 1.01596224 3.04788673 6.09585000 结构å‚考如下图: .. figure:: ../imgs/phase3/AuAl.png :width: 500px :align: center run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`scf.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°å®‰è£…äº†DS-PAW的环境上,è¿è¡Œ :guilabel:`DS-PAW scf.in` 命令。 workfunction功函数数æ®åˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` ç‰è¾“出文件。对 :guilabel:`scf.h5` 文件进行数æ®å¤„ç†å¯å¾—功函数。 å¯ä½¿ç”¨ **python** è„šæœ¬åˆ†æž :guilabel:`scf.h5` 文件,将三维势函数进行é¢å†…å¹³å‡ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¾—到的真空方å‘势函数曲线如下所示: .. figure:: ../imgs/phase2/Au-Al.png :width: 500px :align: center .. centered:: :math:`AuAl` 一维势函数图 通过势函数的é¢å†…å¹³å‡å›¾ï¼Œå¯å¾—Auå’ŒAl的真空电势分别为5.5 ev å’Œ 4.6 eV 从 :guilabel:`scf.h5` ä¸å¯è¯»å–费米能级为 0.113 eV æ ¹æ®å…¬å¼ :math:`w=-e \phi-E_F` å¯å¾— :math:`AuAl` slab模型ä¸ï¼ŒAu的功函数为 **5.387** eV,Al的功函数为 **4.487** eV。文献å‚考值\ :footcite:p:`haynes2016crc` :Au的功函数在 **5.10-5.47** eV区间,Al的功函数在 **4.06-4.26** eV区间。 | | :math:`Ru-N4` 电催化氮还原å应计算 ========================================================================== 本节将展示如何使用DS-PAW模拟一个电催化还原氮气å应(Electrocatalytic nitrogen reduction reaction, eNRR)。该å应以碳基负载过渡金属Ruå•原å为催化剂,使用DS-PAW对电催化氮气分åçš„å¸é™„åŠè¿˜åŽŸè¿‡ç¨‹è¿›è¡Œæ¨¡æ‹Ÿã€‚ 在电化å¦ç•Œé¢å应过程ä¸ï¼Œç”±äºŽç”µåŒ–å¦å应界é¢é€šå¸¸ä¸Žæ’定电æžç”µåŠ¿çš„å¤–ç”µæžç›¸è¿žï¼Œä¸ºç¡®ä¿ç”µå的化å¦åŠ¿ä¸Žå¤–ç”µæžçš„电势达到平衡,å³ç”µå的巨æ£åˆ™ç³»ç»¼ï¼ˆgrand canonical ensemble),实际体系ä¸ä¼šå˜åœ¨ç”µåçš„æµå…¥ä¸Žæµå‡ºè¿‡ç¨‹ã€‚ä¼ ç»Ÿçš„ç¬¬ä¸€æ€§åŽŸç†è®¡ç®—通常是在æ£åˆ™ç³»ç»¼ä¸‹ï¼Œå³åœ¨ç”µè·å®ˆæ’çš„æ¡ä»¶ä¸‹å±•å¼€çš„ï¼Œå› æ¤å®ƒå¹¶ä¸èƒ½å¾ˆå¥½çš„æè¿°ç”µåŒ–å¦ç•Œé¢å应,我们将在电è·å®ˆæ’çš„æ¡ä»¶ä¸‹å±•开的计算模型称为æ’ç”µè·æ¨¡åž‹ï¼ˆconstant charge model,CCM)。 å› æ’ç”µè·æ¨¡åž‹å¹¶ä¸é€‚于处ç†ç”µåŒ–å¦ç•Œé¢é—®é¢˜ï¼Œæˆ‘们å¯é‡‡ç”¨åœ¨ç”µåå·¨æ£åˆ™ç³»ç»¼ä¸‹å±•开第一性原ç†è®¡ç®—,这ç§è®¡ç®—方法åˆè¢«ç§°ä¸ºå›ºå®šç”µåŠ¿æ–¹æ³•ï¼ˆfixed potential method/constant potential method)。在æ¤ä¾‹ä¸æˆ‘们将利用固定电势计算的模型称为æ’电势模型(constant potential model,CPM)。 Flow计算æµç¨‹åŠè¾“入文件 ------------------------------------------------------ æ¤ä¾‹ä»¥ç¢³åŸºè´Ÿè½½è¿‡æ¸¡é‡‘属Ruå•原å为催化剂,使用DS-PAW对电催化氮气分åçš„å¸é™„åŠè¿˜åŽŸè¿‡ç¨‹è¿›è¡Œæ¨¡æ‹Ÿã€‚æ¨¡æ‹Ÿçš„å应为氮气分å在碳基负载Ruå•原å上的å¸é™„过程,å应的表达å¼å¯ç®€å†™ä½œï¼š :math:`(Ru-N_4) + N_2 = (Ru-N_4-N_2)` ,在计算过程ä¸ä½¿ç”¨äº†CCM_vacuum,CCM_water,CPM_water 三ç§ä¸åŒçš„æ¨¡åž‹ï¼Œæ•´ä¸ªè®¡ç®—æµç¨‹å¯å¤§è‡´åˆ†ä¸ºå››æ¥ï¼Œæ¥éª¤å±•开如下: Buildæå»ºæ¨¡åž‹ ++++++++++++++++++++++++++++++++++++++++ 模型包括:(a) 碳基负载RuåŽŸåæ¨¡åž‹ :math:`(Ru-N_4)` ,(b) :math:`N_2` å•åˆ†åæ¨¡åž‹ , (c) å¸é™„了 :math:`N_2` 分å的碳基负载RuåŽŸåæ¨¡åž‹ :math:`(Ru-N_4-N_2)`,模型图如下所示: .. figure:: ../imgs/phase3/RuN4-1.png Relaxation结构弛豫 ++++++++++++++++++++++++++++++++++++++++ 对æå»ºçš„结构进行结构弛豫,获得稳定结构,在DS-PAWä¸è¿›è¡Œç»“构弛豫需è¦çš„æ ¸å¿ƒå‚数: .. code-block:: python relax.max = 200 #æŒ‡å®šç»“æž„é©°è±«æ—¶æœ€å¤§çš„ç¦»åæ¥æ¥æ•° relax.freedom = atom #指定结构驰豫的自由度 relax.convergence = 0.02 #指定结构驰豫时原åå—åŠ›çš„æ”¶æ•›åˆ¤æ® relax.methods = CG #æŒ‡å®šç»“æž„é©°è±«çš„æ–¹æ³•ä¸ºå…±è½æ¢¯åº¦æ³• Energy能é‡è®¡ç®— ++++++++++++++++++++++++++++++++++++++++ 在ä¸åŒæ¨¡åž‹æ¡ä»¶ä¸‹è¿›è¡Œèƒ½é‡è®¡ç®—,获得稳定构型对应能é‡ï¼Œä¸‹é¢æŒ‰ä¸åŒæ¨¡åž‹åˆ†åˆ«è¿›è¡Œä»‹ç»ï¼š CCM_vacuum **************************** 常规的真空层下的scf计算,å³å¯èŽ·å¾—CCM_vacuum模型下的能é‡ï¼Œä¸‹é¢åˆ—出了在DS-PAWä¸è¿›è¡Œ **å•点能计算** 需è¦è®¾ç½®çš„æ ¸å¿ƒå‚数: .. code-block:: python task = scf #自洽计算相关 cal.methods = 1 #指定自洽电å部分优化的方法为BD(block Davidson)方法 cal.smearing = 1 #指定Gaussian smearingæ¥è®¾ç½®æ¯ä¸ªæ³¢å‡½æ•°çš„éƒ¨åˆ†å æœ‰æ•° cal.ksamping = G #指定生æˆå¸ƒé‡Œæ¸ŠåŒºkç‚¹ç½‘æ ¼çš„æ–¹æ³• cal.kpoints = [2, 2, 1] #指定布里渊区kç‚¹ç½‘æ ¼å–æ ·å¤§å° cal.cutoffFactor = 1.0 #æŒ‡å®šå¹³é¢æ³¢åŸºçŸ¢çš„æˆªæ–èƒ½å‚æ•°cal.cutoff的系数 corr.VDW = true #指定引入范德瓦尔斯修æ£è®¡ç®— corr.VDWType = D2G #指定DFT-D2 of Grimmeæ–¹æ³•è¿›è¡ŒèŒƒå¾·ç“¦å°”æ–¯ä¿®æ£ CCM_water **************************** 在CCM模型下,也å¯ä»¥åˆ©ç”¨éšå¼æº¶å‰‚化模型æ¥è€ƒè™‘溶剂效应,这里我们以水溶液为例,列出利用DS-PAW在scf计算ä¸å¼•å…¥ **溶剂化模型** 所需è¦è®¾ç½®çš„æ ¸å¿ƒå‚数: .. code-block:: python task = scf #溶剂化模型相关 sys.sol = true #指定是å¦åº”用éšå¼æº¶å‰‚化模型,true表示打开 sys.solEpsilon = 78.4 #指定溶剂介电常数,水的介电常数78.4 sys.solLambdaD = 3.04 #指定泊æ¾çŽ»å°”å…¹æ›¼æ–¹ç¨‹ä¸å¾·æ‹œé•¿åº¦ï¼Œå•ä½ä¸ºÃ… sys.solTAU = 0 #指定å•ä½é¢ç§¯çš„æœ‰æ•ˆç•Œé¢å¼ 力的大å°ï¼Œå•ä½eV/Ã…^2 io.boundCharge = false #指定是å¦è¾“出溶剂æŸç¼šç”µè·å¯†åº¦æ–‡ä»¶,falseè¡¨ç¤ºå…³é— CPM_water **************************** 在DS-PAWä¸ç”¨å›ºå®šç”µåŠ¿æ–¹æ³•è®¡ç®—å³å¯èŽ·å¾—CPM模型下的能é‡ã€‚在新å‘布的2023A版本ä¸è¿›è¡Œå›ºå®šç”µåŠ¿è®¡ç®—å¿…é¡»å¼•å…¥æº¶å‰‚åŒ–æ¨¡åž‹ï¼Œè¿™é‡Œåˆ—å‡ºäº†åˆ©ç”¨DS-PAW在éšå¼æ°´æº¶æ¶²çŽ¯å¢ƒä¸‹è¿›è¡Œ **固定电势计算** çš„æ ¸å¿ƒå‚æ•°ï¼š .. code-block:: python task = scf #溶剂化模型相关 sys.sol = true #指定是å¦åº”用éšå¼æº¶å‰‚化模型,true表示打开 sys.solEpsilon = 78.4 #指定溶剂介电常数,默认值为水的介电常数78.4 sys.solLambdaD = 3.04 #指定泊æ¾çŽ»å°”å…¹æ›¼æ–¹ç¨‹ä¸å¾·æ‹œé•¿åº¦ï¼Œå•ä½ä¸ºÃ… sys.solTAU = 0 #指定å•ä½é¢ç§¯çš„æœ‰æ•ˆç•Œé¢å¼ 力的大å°ï¼Œå•ä½eV/Ã…^2 io.boundCharge = false #指定是å¦è¾“出溶剂æŸç¼šç”µè·å¯†åº¦æ–‡ä»¶,falseè¡¨ç¤ºå…³é— #固定电势设置相关 sys.fixedP = true #指定是å¦å¼€å¯å›ºå®šç”µåŠ¿è®¡ç®—,true表示打开 sys.fixedPConvergence = 0.01 #指定固定电势计算的收敛精度,å‰åŽä¸¤æ¬¡è‡ªæ´½è®¡ç®—çš„delta_electronå°äºŽæ”¶æ•›ç²¾åº¦ï¼Œè®¡ç®—ç»“æŸ sys.fixedPMaxIter = 60 #指定固定电势计算时最大è¿ä»£æ¥æ•° sys.fixedPPotential = 0 #æŒ‡å®šå›ºå®šç”µåŠ¿è®¡ç®—çš„ç›®æ ‡ç”µæžç”µåŠ¿å€¼ï¼Œé»˜è®¤ä»¥SHE为å‚考电æžç”µåŠ¿ sys.fixedPType = SHE #指定sys.fixedPPotential给出的电势值的电势类型,支æŒSHEï¼ˆæ ‡å‡†æ°¢ç”µæžï¼‰å’ŒPZC(零电è·ç”µä½ï¼‰ ReactionEnergyå应能计算 ++++++++++++++++++++++++++++++++++++++++ **æ¤ä¾‹é€‰å–了3个ä¸åŒçš„计算模型,首先介ç»å„模型下的å¸é™„å应å¼ï¼š** CCM_vacuum **************************** 该模型下,å¸é™„å应å¼å¯å†™ä½œ: :math:`(Ru-N4) + N2 (ideal gas) = (Ru-N4-N2)` 我们定义 :math:`{\Delta}E` 为å应能,å应能的计算表达å¼ä¸ºï¼š :math:`{\Delta}E = E0(Ru-N4-N2) - E0(Ru-N4) - E0(N2)` å…¶ä¸ï¼ŒE0对应真空模型下体系的总能((sigma→0),该数值å¯ä»Žè‡ªæ´½è®¡ç®—所得的 :guilabel:`scf.h5` 或 :guilabel:`system.json` 文件ä¸èŽ·å–ï¼ŒæŸ¥æ‰¾å…³é”®å— â€œTotalEnergy0†å³å¯ã€‚ CCM_water **************************** 该模型下,å¸é™„å应å¼å¯å†™ä½œ: :math:`(Ru-N4)(in water) + N2 (ideal gas) = (Ru-N4-N2) (in water)` :math:`{\Delta}E = E0(Ru-N4-N2) - E0(Ru-N4) - E0(N2)` å…¶ä¸ï¼ŒE0对应水溶液浸润的模型下体系的总能((sigma→0),该数值å¯ä»Žè‡ªæ´½è®¡ç®—所得的 :guilabel:`scf.h5` 或 :guilabel:`system.json` 文件ä¸èŽ·å–ï¼ŒæŸ¥æ‰¾å…³é”®å— â€œTotalEnergy0†å³å¯ã€‚ CPM_water **************************** 该模型下模拟的å应过程为气相ä¸çš„ :math:`N_2` 在由水溶液浸润并与0V vs. SHE(æ ‡å‡†æ°¢ç”µæž)ç”µæžæŽ¥è§¦çš„å‚¬åŒ–å‰‚è¡¨é¢çš„å¸é™„过程, **æ¤æ—¶å¸é™„ååº”å¼æœ‰ä¸¤ç§å†™æ³•** ,为便于æè¿°ï¼Œæˆ‘们 **定义了以下物ç†é‡ç¬¦å·** : - :math:`ne0` : 䏿€§ä½“ç³»ä¸‹çš„æ ¸ç”µè·æ•° - :math:`ne` : 当体系电压为设定值(sys.fixedPPotential所设数值,æ¤ä¾‹å¯¹åº” 0 V)æ—¶ä½“ç³»çš„æ€»ç”µåæ•° - :math:`dne` : 当体系电压为设定值时,体系的带电é‡ï¼š :math:`dne = ne - ne0` - :math:`\mu_e` : 体系电å化å¦åŠ¿ï¼Œç”µåŠ¿é›¶ç‚¹ä¸ºæº¶æ¶²æ·±å¤„ï¼ˆå³DFT计算得到的电è·å¯†åº¦æœ€ä½Žç‚¹çš„电势值) - :math:`{\Delta}e` : å¸é™„æ€ä½“ç³»ä»·ç”µåæ•°(eAB)与å¸é™„基底和å¸é™„åˆ†åæ€»ä»·ç”µåæ•°(eA+eB)的差值 - :math:`\Omega0` : grand total energy(sigma→0): 电åå·¨æ£åˆ™ç³»ç»¼ä¸‹çš„体系总能,**其表达å¼ä¸º** : :math:`\Omega0 = E0-dne*\mu_e` **æ¤æ—¶ï¼ŒCPM_water模型下å¸é™„å应å¼å¯å‚考如下写法:** **方法一**,在å应å¼ä¸è€ƒè™‘ :math:`{\Delta}e` ,å¸é™„å应å¼å¯å†™ä½œ: :math:`Ru-N4 (0V vs. SHE) + N2(ideal gas) = Ru-N4-N2 (0V vs. SHE) - {\Delta}e` :math:`{\Delta}E = E0(Ru-N4-N2) - {\Delta}e*\mu_e - E0(Ru-N4) - E0(N2)` å…¶ä¸ï¼ŒE0的数值å¯ä»Žè‡ªæ´½è®¡ç®—所得的 :guilabel:`scf.h5` 或 :guilabel:`system.json` 文件ä¸èŽ·å–ï¼ŒæŸ¥æ‰¾å…³é”®å— â€œTotalEnergy0†å³å¯ã€‚ :math:`ne` å’Œ :math:`\mu_e` 的数值å¯ä»Žè‡ªæ´½è®¡ç®—所得的 :guilabel:`DS-PAW.log` (或 :guilabel:`scf.h5` 或 :guilabel:`system.json`)文件ä¸èŽ·å–,最åŽä¸€ä¸ªLOOPä¸‹æŸ¥æ‰¾å…³é”®å— â€œElectron†和 “Chemical Potential(electron) †å³å¯ã€‚ **方法二**,考虑电åå·¨æ£åˆ™ç³»ç»¼ä¸‹çš„体系总能 :math:`\Omega0` 由于固定电势计算是模拟的电å的巨æ£åˆ™ç³»ç»¼ï¼Œæ¤æ—¶å应能计算å¼ä¸çš„体系总能 :math:`E0` 应当用 :math:`\Omega0` æ¥ä»£æ›¿ã€‚å¸é™„å应å¼å¯å†™ä½œ: :math:`(Ru-N4) (0V vs. SHE) + N2(ideal gas) = (Ru-N4-N2) (0V vs. SHE)` :math:`{\Delta}E = \Omega0(Ru-N4-N2) - \Omega0(Ru-N4) - \Omega0(N2)` å…¶ä¸ï¼Œ:math:`\Omega0` 的数值å¯ä»Žè‡ªæ´½è®¡ç®—所得的 :guilabel:`DS-PAW.log` (或 :guilabel:`scf.h5` 或 :guilabel:`system.json`)文件ä¸èŽ·å–,最åŽä¸€ä¸ªLOOPä¸‹æŸ¥æ‰¾å…³é”®å— â€œGrand Total Energy†å³å¯ã€‚ **由于(Ru-N4)与(Ru-N4-N2)的电势为0V vs. SHE,故对(Ru-N4)与(Ru-N4-N2)进行0V下的固定电势计算,从DS-PAW的相应输出文件æå–æ•°æ®ï¼Œå¾—åˆ°å¦‚ä¸‹è¡¨æ ¼ï¼Œèƒ½é‡å•ä½ä¸º eV:** ============== ===================== ================= ===================== ========================= ============================ ====================== system :math:`E0` :math:`nE0` :math:`ne` :math:`dne` :math:`\mu_e` :math:`\Omega0` ============== ===================== ================= ===================== ========================= ============================ ====================== N2 -545.9393 10 / / / -545.9393 Ru-N4 -10572.2452 212 211.224 -0.776 -4.60223 -10575.81654 Ru-N4-N2 -11119.6117 222 221.229 -0.771 -4.60054 -11123.15868 ============== ===================== ================= ===================== ========================= ============================ ====================== .. centered:: 表 1. CPM_wateræ¨¡åž‹ä¸‹å›ºå®šç”µåŠ¿è®¡ç®—æ•°æ® æŽ¥ä¸‹æ¥å°† **表 1** 的数æ®ä»£å…¥å¯¹åº”的表达å¼ä¸è¿›è¡Œè®¡ç®—: **方法一** 在å应å¼ä¸è€ƒè™‘ :math:`{\Delta}e` ,å应能计算过程如下: :math:`Ru-N4 (0V vs. SHE) + N2(ideal gas) = Ru-N4-N2 (0V vs. SHE) - {\Delta}e` :math:`{\Delta}E = E0(Ru-N4-N2) - {\Delta}e*\mu_e - E0(Ru-N4) - E0(N2)` :math:`= -11119.6117-(221.229-211.224-10)*(-4.600)-(-10572.2452)-(-545.9393)` :math:`= - 1.4042 eV` **方法二** 考虑电åå·¨æ£åˆ™ç³»ç»¼ä¸‹çš„体系总能 :math:`\Omega0` ,å应能计算过程如下: :math:`(Ru-N4) (0V vs. SHE) + N2(ideal gas) = (Ru-N4-N2) (0V vs. SHE)` :math:`{\Delta}E = \Omega0(Ru-N4-N2) - \Omega0(Ru-N4) - \Omega0(N2)` :math:`= -11123.1586-(-10575.8165)-(-545.9393)` :math:`= -1.4027 eV` é€šè¿‡ä¸¤ç§æ–¹æ³•计算所得的å¸é™„能一致。 å¯è§ 用DS-PAWä¸å®šä¹‰çš„ :math:`\Omega0` å³å¯å¾ˆæ–¹ä¾¿çš„计算固定电势下的å应能。 Run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°†ç»“构弛豫计算ã€èƒ½é‡è®¡ç®—ã€å›ºå®šç”µåŠ¿è®¡ç®—çš„ in 文件和 :guilabel:`structure.as` ç»“æž„æ–‡ä»¶ä¸Šä¼ åˆ°å®‰è£…äº†DS-PAW的环境上,按照æµç¨‹åˆ†å¤šæ¥è¿è¡Œ :guilabel:`DS-PAW input.in` 命令或æäº¤ä½œä¸šè„šæœ¬å®Œæˆå¤šæ¬¡è®¡ç®—。 ReactionEnergyå应能数æ®åˆ†æž ------------------------------------------------------ 将表 1的数æ®åˆ†åˆ«ä»£å…¥ **CCM_vacuum** 〠**CCM_water** 〠**CPM_water** 模型的å¸é™„å应å¼ï¼Œè®¡ç®—三个模型下, **eNRRå‰ä¸‰æ¥å应的å应能**,结果如下 **表 2** 所示: ============================================== ===================== ================= ===================== reaction/ :math:`{\Delta}e` (eV) CCM_vacuum CCM_water CPM_water ============================================== ===================== ================= ===================== :math:`(Ru-N4) + N2 = (Ru-N4-N2)` -1.3180 -1.3668 -1.4027 :math:`(Ru-N4-N2) + 0.5H2 = (Ru-N4-N2-H)` 1.1355 1.0833 1.6511 :math:`(Ru-N4-N2-H) +0.5H2 = (Ru-N4-N2-H2)` -0.6833 -0.8030 -1.0305 ============================================== ===================== ================= ===================== .. centered:: 表 2. å应能数æ®è¡¨ 最åŽå°†ä¸Šè¿°ç»“果绘制æˆååº”åæ ‡æ›²çº¿ï¼Œæ•ˆæžœå¦‚下 **图 3** 所示: .. figure:: ../imgs/phase3/RuN4-2.png :width: 600px :align: center .. centered:: 图 3. ååº”åæ ‡-å应能曲线 | | refå‚考文献 ========================================================================== .. footbibliography::